Diagrams are useful for conveying a large amount of data quickly and efficiently. In conventional diagrams, information is often conveyed through a combination of geometric symbols (“shapes”). The shapes may be arranged in a variety of ways, and depending on the arrangement, can represent a variety of data. For example, charts, graphs, flow diagrams, timelines are just some of the diagrams that may be used to convey information. Often, more than one diagram style may be chosen to represent the same information to a viewer.
The shape may be seen as the essential building block for a diagram. Data that describes the properties of the shape is often conveyed through the use of a label. Generally, labels have been limited in the amount of information they convey, and the methods in which they present that information. Most often, a label is simply a block of text that either supplies a name to the shape or describes some properties of the shape. Also, the properties of the shape may change as the data which the shape represents changes. For example, a diagram showing a network topology may correspond to a stored spreadsheet listing of the nodes on the network. Therefore, when a new node is added to the network, the data in the spreadsheet needs to be updated. In addition, the diagram must be updated, along with the labels for the included shapes. Without the ability to surface data changes in the diagram more efficiently, or the ability to represent properties of shapes in a greater variety of ways, it remains difficult for a user to construct a compelling visual diagram that adequately conveys the desired information.